import 'package:intl/intl.dart';
import 'dart:io' show Platform;
import 'package:device_info_plus/device_info_plus.dart';

/// 通用工具函数集合
class Utility {
  /// 格式化日期
  static String formatDate(DateTime date, {String format = 'yyyy-MM-dd'}) {
    final formatter = DateFormat(format);
    return formatter.format(date);
  }

  /// 格式化日期时间
  static String formatDateTime(
    DateTime date, {
    String format = 'yyyy-MM-dd HH:mm:ss',
  }) {
    final formatter = DateFormat(format);
    return formatter.format(date);
  }
}

/// 设备信息工具类
class DeviceInfoUtil {
  static final DeviceInfoPlugin _deviceInfoPlugin = DeviceInfoPlugin();
  static bool? _isIPad;

  /// 判断当前设备是否为iPad (异步)
  static Future<bool> checkIsIPad() async {
    // 如果已缓存结果，直接返回
    if (_isIPad != null) {
      return _isIPad!;
    }

    // 只处理iOS设备，非iOS设备都不是iPad
    if (!Platform.isIOS) {
      _isIPad = false;
      return false;
    }

    try {
      // 获取iOS设备信息
      final iosInfo = await _deviceInfoPlugin.iosInfo;
      final model = iosInfo.model ?? '';

      // 检查是否为iPad
      _isIPad = model.toLowerCase().startsWith('ipad');
      return _isIPad!;
    } catch (e) {
      // 出错时返回false
      _isIPad = false;
      return false;
    }
  }

  /// 获取当前设备是否为iPad (同步，需要先调用checkIsIPad)
  static bool isIPad() {
    return _isIPad ?? false;
  }
}
